import implementaciones.SplayTree;
/**
 * Universidad del Valle de Guatemala
 * Mayra Yucely Beb Caal Carne: 12537
 * Vuictor Fuentes       carne: 12298
 * Juan de Dios Chivalan carne: 12175
 *--------------------------------------------------------------------
 * Esta clase Utiliza el SplayTree elaborado por Bailey para guardar en
 * el objetos de la clase Word, y así crear un diccionario con los tipos
 *de palabras existentes.
 *-----------------------------------------------------------------------
 */

public class SplayTreeSet implements WordSet{

    //RedBlackSearchTree  aqui se guardaran las palabras
    
    private SplayTree<Word> theWordTree;
    
    /**
     * Constructor 
     */
    public SplayTreeSet(){
        theWordTree = new SplayTree<>();
    }
    
    /**
     * Añade las nuevas palabras al arbol
     * Se añade la palabra al árbol de ser nueva. Si ya existe, no se hace nada.
     */
    public void add(Word wordObject) {
        if(!theWordTree.contains(wordObject)){
            theWordTree.add(wordObject);
        }
    }

    /**
     * Devuelve la palabra que se busca por medio de este metodo 
     * Si la palabra buscada existe en el árbol, se devuelve esta misma. En caso contrario, se devuelve null.
     */
    public Word get(Word word) {
        //Se verifica si la palabra existe 
        if(theWordTree.contains(word)){
            //si se cumple, se devuelve la misma palabra 
            return theWordTree.get(word);
        }else{
            return null;
        }
    }
        
}